package com.woniuxy.ssm.utils;

import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author linke
 * @version 1.0
 * @className: SpringToDate
 * @description: 自定义日期格式转换器
 * @date 2021/11/19 12:15
 */
@Component
public class StringToDate implements Converter<String, Date> {
    @Override
    public Date convert(String source) {
        if ("".equals(source)||source == null) {
            return null;
        }
        System.out.println("传入的源内容： "+source);
        //日期格式转换 转换yyyy-MM-dd格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        //日期格式转换 转换yyyy/MM/dd格式
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy/MM/dd");
        //日期格式转换 转换yyyy-MM-dd'T'hh:mm:ss格式
        SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
        Date parse = null;
        try {
            parse  = simpleDateFormat.parse(source);
            System.out.println("转换yyyy-MM-dd格式");
            return parse;
        } catch (ParseException e) {
            try {
                parse = simpleDateFormat2.parse(source);
                System.out.println("转换yyyy/MM/dd格式");
                return parse;
            } catch (ParseException parseException) {
                try {
                    parse = simpleDateFormat3.parse(source);
                    System.out.println("转换yyyy-MM-dd'T'hh:mm:ss格式");
                    return parse;
                } catch (ParseException exception) {
                    exception.printStackTrace();
                    System.err.println("转换异常");
                }
            }
        }
        return null;
    }
}
